package com.project.mapper;

import com.project.bean.CutPageBean;
import com.project.bean.RoomBean;
import com.project.bean.StudentBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IStudentMapper {

    /**
     * 添加学生对象
     *
     * @param student 添加
     */
    void add(StudentBean student);

    /**
     * 按编号删除学生对象（退房）
     *
     * @param id 学生编号
     */
    void del(Integer id);

    /**
     * 学生换房
     *
     * @param studentId     学生编号
     * @param roomId 新房间编号
     */
    void update(@Param("studentId") Integer studentId,@Param("roomId") Integer roomId);

    /**
     * 通过编号查询学生对象
     *
     * @param id 学生编号，同时查询所住房间地址和班级名称
     * @return 学生对象
     */
    StudentBean getById(Integer id);


    /**
     * 动态查询当前页对象数据
     *
     * @param start     起始位置
     * @param pageSize  页面范围
     * @param name      学生姓名
     * @param className 班级名
     * @param roomAddr  房间地址
     * @return 当前页对象集合
     */
    List<StudentBean> cutByItemList(@Param("start") int start, @Param("pageSize") int pageSize, @Param("name") String name,
                                    @Param("className") String className, @Param("roomAddr") String roomAddr);

    /**
     * 动态查询总记录数
     *
     * @param name      学生姓名
     * @param className 班级名
     * @param roomAddr  房间地址
     * @return 总记录数
     */
    int getTotalByItem(@Param("name") String name, @Param("className") String className, @Param("roomAddr") String roomAddr);


}
